package com.niiwoo.civet.account.service;

import com.niiwoo.civet.account.dto.common.MoneyTotalDTO;
import com.niiwoo.civet.account.dto.request.QueryMoneyTotalRequestDTO;
import com.niiwoo.civet.account.dto.response.InvestmenTotalResponseDTO;
import com.niiwoo.civet.account.dto.response.QueryMoneyTotalResponseDTO;
import com.niiwoo.civet.account.enums.AccountAmountTypeEnum;

import java.math.BigDecimal;
import java.util.List;

/**
 * 财富中心
 * 
 * @author liaojunjun
 *
 */
public interface MoneyTotalDubboService {
	
	/**
	 * 累计财富计算
	 * 
	 * @param dtoList
	 */
	public void moneyTotal(List<MoneyTotalDTO> dtoList);

	/**
	 * 累计财富计算
	 * 
	 * @param dto
	 */
	public void moneyTotal(MoneyTotalDTO dto);

	/**
	 * 查询用户财富累计
	 * 
	 * @param dto
	 * @return
	 */
	public QueryMoneyTotalResponseDTO queryMoneyTotal(
			QueryMoneyTotalRequestDTO dto);

	/**
	 * 获取用户投资统计
	 * @param userId
	 * @return
	 */
	InvestmenTotalResponseDTO getUserInvestmenTotal(String userId);

	/**
	 * 根据类型统计总金额
	 * @param amountTypeEnumList
	 * @return
	 */
	BigDecimal queryMoneyTotalByAmountTypeList(AccountAmountTypeEnum... amountTypeEnumList);

	/**
	 * 获取指定用户指定类型的金额信息
	 * @return
	 */
	BigDecimal queryMoneyByUserIdAndAccountType(String userId,AccountAmountTypeEnum amountType);
}
